# 快速排序，选择一个基准点，将数组分为两部分，左边的元素都小于等于基准点，右边的元素都大于等于基准点
def QuickSortPivot(arr,start,end):
    # 将基准点设为数组的第一个元素
    pivot=start
    j=start+1
    # 遍历数组，将小于等于基准点的元素放在左边，大于等于基准点的元素放在右边
    for i in range(start+1,end+1):
        if arr[i]<=arr[pivot]:
            arr[i],arr[j]=arr[j],arr[i]
            j+=1
    # 将基准点放到正确的位置
    arr[pivot],arr[j-1]=arr[j-1],arr[pivot]
    pivot=j-1
    return pivot

# 快速排序，递归调用QuickSortPivot函数，将数组分为两部分，再对两部分分别进行排序
def QuickSort(arr,start,end):
    # 如果数组的长度小于等于1，则不需要排序
    if start>=end:
        return
    # 调用QuickSortPivot函数，选择一个基准点，将数组分为两部分
    pivot=QuickSortPivot(arr,start,end)

    # 对左边的部分进行排序
    QuickSort(arr,start,pivot-1)
    # 对右边的部分进行排序
    QuickSort(arr,pivot+1,end)


a=[5,2,4,6,1,3]
QuickSort(a,0,len(a)-1)
print(a) 